agents
Class TimeDependentAgent

java.lang.Object
  extended by negotiator.Agent
      extended by agents.anac.y2011.Nice_Tit_for_Tat.BilateralAgent
          extended by agents.TimeDependentAgent
All Implemented Interfaces:
BidHistoryKeeper
Direct Known Subclasses:
TimeDependentAgentBoulware, TimeDependentAgentConceder, TimeDependentAgentHardliner, TimeDependentAgentLinear

public abstract class TimeDependentAgent
extends BilateralAgent

Boulware/Conceder tactics, by Tim Baarslag, adapted from [1]. Adapted by Mark Hendrikx to use the SortedOutcomeSpace instead of BidHistory. [1] S. Shaheen Fatima Michael Wooldridge Nicholas R. Jennings Optimal Negotiation Strategies for Agents with Incomplete Information http://eprints.ecs.soton.ac.uk/6151/1/atal01.pdf

Author:
Tim Baarslag, Mark Hendrikx

Field Summary
 
Fields inherited from class agents.anac.y2011.Nice_Tit_for_Tat.BilateralAgent
domain, myHistory, opponentHistory
 
Fields inherited from class negotiator.Agent
fNegotiation, parametervalues, sessionNr, sessionsTotal, startTime, strategyParameters, timeline, totalTime, utilitySpace
 
Constructor Summary
TimeDependentAgent()
           
 
Method Summary
 Bid chooseCounterBid()
          The opponent has already made a bid.
 Bid chooseFirstCounterBid()
          Use this method to make the first counter-bid.
 Bid chooseOpeningBid()
          Use this method to make an opening bid.
 double f(double t)
          From [1]: A wide range of time dependent functions can be defined by varying the way in which f(t) is computed.
abstract  double getE()
          Depending on the value of e, extreme sets show clearly different patterns of behaviour [1]: 1.
 java.lang.String getName()
           
static java.lang.String getVersion()
           
 void init()
          This method is called by the protocol every time before starting a new session after the internalInit method is called.
 boolean isAcceptable(Bid plannedBid)
          At some point, one of the parties has to accept an offer to end the negotiation.
 Bid makeBid()
           
 double p(double t)
           
 Bid pickBidOfUtility(double utility)
          Does not care about opponent's utility!
 
Methods inherited from class agents.anac.y2011.Nice_Tit_for_Tat.BilateralAgent
chooseAction, getMyLastBid, getMySecondLastBid, getOpponentHistory, getOpponentLastBid, getRound, getUndiscountedUtility, log, makeAcceptAction, ReceiveMessage, round2
 
Methods inherited from class negotiator.Agent
endSession, getAgentID, getParameterValues, getSessionNumber, getSessionsTotal, getStrategyParameters, getUniqueIdentifier, getUtility, internalInit, isUIAgent, loadSessionData, parseStrategyParameters, restartDataObjectsFolder, saveSessionData, setAgentID, setName, sleep
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TimeDependentAgent

public TimeDependentAgent()
Method Detail

getE

public abstract double getE()
Depending on the value of e, extreme sets show clearly different patterns of behaviour [1]: 1. Boulware: For this strategy e < 1 and the initial offer is maintained till time is almost exhausted, when the agent concedes up to its reservation value. 2. Conceder: For this strategy e > 1 and the agent goes to its reservation value very quickly. 3. When e = 1, the price is increased linearly. 4. When e = 0, the agent plays hardball.


getName

public java.lang.String getName()
Overrides:
getName in class Agent
Returns:
name of the agent.

getVersion

public static java.lang.String getVersion()

init

public void init()
Description copied from class: Agent
This method is called by the protocol every time before starting a new session after the internalInit method is called. User can override this method.

Overrides:
init in class BilateralAgent

f

public double f(double t)
From [1]: A wide range of time dependent functions can be defined by varying the way in which f(t) is computed. However, functions must ensure that 0 <= f(t) <= 1, f(0) = k, and f(1) = 1. That is, the offer will always be between the value range, at the beginning it will give the initial constant and when the deadline is reached, it will offer the reservation value. For e = 0 (special case), it will behave as a Hardliner.


p

public double p(double t)

pickBidOfUtility

public Bid pickBidOfUtility(double utility)
Does not care about opponent's utility!


makeBid

public Bid makeBid()

chooseCounterBid

public Bid chooseCounterBid()
Description copied from class: BilateralAgent
The opponent has already made a bid. Use this method to make an counter bid.

Specified by:
chooseCounterBid in class BilateralAgent

chooseFirstCounterBid

public Bid chooseFirstCounterBid()
Description copied from class: BilateralAgent
Use this method to make the first counter-bid.

Specified by:
chooseFirstCounterBid in class BilateralAgent

chooseOpeningBid

public Bid chooseOpeningBid()
Description copied from class: BilateralAgent
Use this method to make an opening bid.

Specified by:
chooseOpeningBid in class BilateralAgent

isAcceptable

public boolean isAcceptable(Bid plannedBid)
Description copied from class: BilateralAgent
At some point, one of the parties has to accept an offer to end the negotiation. Use this method to decide whether to accept the last offer by the opponent.

Specified by:
isAcceptable in class BilateralAgent